There are many types of computing services, resources and data that computer users and applications need to manage and otherwise access, such as services and data maintained on corporate networks and other remotely accessible sites including intranets and the internet. As there are many different computing platforms, various platform-independent mechanisms and protocols that facilitate the exchange of network information are becoming commonplace, including HTTP (HyperText Transfer Protocol), XML (eXtensible Markup Language), XML Schema, and SOAP (Simple Object Access Protocol). The concept of web services, in which businesses, organizations, and other providers offer services to users and applications, is based on these standards. Web services are services that connect applications across an intranet, extranet, or across the Internet, so that these applications can share resources and information. Web services can be offered by any individual or organization that has the tools to create them and make them available to other individuals or organizations online.
To be of value, web services need to enable users and applications to locate them, and exchange the information needed to execute them. To this end, UDDI (Universal Description Discovery & Integration) provides a set of defined services (e.g., in a universal business registry) that help users and applications discover such businesses, organizations, and other web services providers, along with a description of their available web services and the technical interfaces needed to access those services. UDDI thus facilitates the connection between the providers and the consumers of Web services. Although such services may be provided over the internet, services also may be provided in an enterprise environment or other intranet, where the services and their usage may be more controlled. Thus, not just UDDI, but other service registries (such as one based on Microsoft Corporation's Active Directory®) may provide a way of locating a distributed service.
However, the development of database-centric web services such as UDDI requires the ability to simultaneously handle (up to) thousands of queries against a database, at a time when the database also may be being subjected to substantially intensive update operations. Many database management systems cannot adequately meet such demands, particularly when having to deal with complex queries.
One way to handle such a large volume of queries is to force users to use a limited set of enumerated queries. However, limiting the users in this way is simply not sufficiently flexible with respect to the types of queries users often need to submit for web service-related requests, and other types of requests. Users need flexibility, but handling large amounts of ad hoc queries that are often complex is too inefficient to handle at times in a heavy, mixed-use (i.e., read-write) database environment, and also presents some security issues that do not exist with enumerated queries.